package com.learn.base.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * @author : Yu.Tan
 * @date : 2023/1/17 10:47
 * @desc : 使用redis进行分布式锁
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisLock {
    /**
     * redis锁 名称
     */
    String lockName() default "";

    /**
     * redis锁 key名称 支持spel表达式
     */
    String key() default "";

    /**
     *redis锁 过期时间，默认为5秒
     *
     */
    int expire() default 5000;

    /**
     * 超时时间单位
     * @return 默认 毫秒
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

}
